#include "diskinfotlvencodedobj.h"

DiskInfoTlvEncodedObj::DiskInfoTlvEncodedObj()
{

}

int DiskInfoTlvEncodedObj::decodeParametersFromTlv(TLV *tlv)
{
    if(tlv->tag == DiskInfoTlvEncodedObj_tag_diskName)
    {
        this->disk = tlv->buffer;
    }
    else if (tlv->tag == DiskInfoTlvEncodedObj_tag_totalMB)
    {
        this->totalMB = atof(tlv->buffer);
    }
    else if (tlv->tag == DiskInfoTlvEncodedObj_tag_freeMB)
    {
        this->freeMB = atof(tlv->buffer);
    }
    return f_success;
}

int DiskInfoTlvEncodedObj::encodeParametersIntoTlvs(list<TLV *> &tlvs)
{
    tlvs.push_back(createTlvByStringValue(DiskInfoTlvEncodedObj_tag_diskName, this->disk.toStdString()));
    tlvs.push_back(createTlvByStringValue(DiskInfoTlvEncodedObj_tag_totalMB, float2QStr(this->totalMB).toStdString()));
    tlvs.push_back(createTlvByStringValue(DiskInfoTlvEncodedObj_tag_freeMB, float2QStr(this->freeMB).toStdString()));

    return f_success;
}
